<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Atractivo_foto_exe( $this );
    
	class Atractivo_foto_exe extends Exe
	{
	function Atractivo_foto_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
		// AGREGAR_ATRACTIVO_FOTO
		function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Atractivo_foto_frm' );
			extract( $oForm->getFieldArray() );
			// Busca el siguiente id
			$ncFoto      = $this->oDatabase->nextKey("gtAtractivoFoto", "ncFoto", "ncAtractivo=$ncAtractivo"  );
			if ( !$nOrden )  $nOrden = $ncFoto;
			$this->oDatabase->insert("gtAtractivoFoto"
								,"ncFoto", $ncFoto
								,"ncAtractivo", $ncAtractivo
								,"cTitulo", $cTitulo
								,"cArchivo", $cArchivo
								,"ncFotografo", $ncFotografo
								,"nOrden", $nOrden);
			$this->setInputData( $ncAtractivo . "|" .$ncFoto, $cTitulo );
		}
		
		// ELIMINAR_ATRACTIVO_FOTO
		function delete()
		{
			$ncFoto = getParam( 'ncFoto' );
			$ncAtractivo = getParam( 'ncAtractivo' );
			$this->oDatabase->delete("gtAtractivoFoto","ncFoto", $ncFoto,"ncAtractivo", $ncAtractivo );
		}
		
		// MODIFICAR_ATRACTIVO_FOTO
		function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Atractivo_foto_frm' );
			extract( $oForm->getFieldArray() );
			$this->oDatabase->update("gtAtractivoFoto"
								,"cTitulo", $cTitulo
								,"cArchivo", $cArchivo
								,"ncFotografo", $ncFotografo
								,"nOrden", $nOrden
								,"WHERE"
								 ,"ncFoto", $ncFoto
								 ,"ncAtractivo", $ncAtractivo);
			$this->setInputData( $ncAtractivo . "|" .$ncFoto, $cTitulo );
		}
		function updateOrder()
		{
			$nCambiarOrden = getParam('nCambiarOrden');
			$ncAtractivo = getParam('ncAtractivo');
			$ncFoto = getParam('ncFoto');
			$nOrden = getParam('nOrden');
			if ( $nCambiarOrden  && $ncFoto )
			{
				if ( $nCambiarOrden == -1 )
					list( $ncFotoCbo, $nOrdenCbo ) = $this->oDatabase->getArray( "SELECT ncFoto, nOrden FROM gtAtractivoFoto WHERE ncAtractivo = $ncAtractivo AND nOrden < $nOrden ORDER BY nOrden " , 0, 1);
				else
					list( $ncFotoCbo, $nOrdenCbo ) = $this->oDatabase->getArray( "SELECT ncFoto, nOrden FROM gtAtractivoFoto WHERE ncAtractivo = $ncAtractivo AND nOrden > $nOrden ORDER BY nOrden ", 0, 1 );
				if ( $ncFotoCbo )
				{
					$this->oDatabase->update("gtAtractivoFoto"
									,"nOrden", $nOrden
									,"WHERE"
									,"ncAtractivo", $ncAtractivo
									 ,"ncFoto", $ncFotoCbo);
				} else
				{ // Si no hay ni mayor ni menor => pone 1 (minimo)  o la cantidad de registros como maximo
					if ( $nCambiarOrden == -1 )
						$nOrdenCbo = 1;
					else
						$nOrdenCbo = $this->oDatabase->getData( "SELECT count(*) FROM gtAtractivoFoto WHERE ncAtractivo = $ncAtractivo " );
				}
				$this->oDatabase->update("gtAtractivoFoto"
								,"nOrden", $nOrdenCbo
								,"WHERE"
								 ,"ncAtractivo", $ncAtractivo
								 ,"ncFoto", $ncFoto);
			}
		}				
	}
?>